﻿using System.Collections.Generic;
using Newtonsoft.Json;

namespace ContractWebApi.Models
{
    /// <summary>
    /// 签署位置列表 -详细设置参数 https://docor.letsign.com/openapi/apidoc/applyForSign/
    /// </summary>
    public class SignLocationDto
    {
        /// <summary>
        /// 必填 文件顺序号，从1开始
        /// - 如果合同只有单个文件，则该值传1
        /// - 如果合同有多个文件，则需传 合同追加文件接口 返回的实际文件顺序
        /// </summary>
        public int FileOrder { get; set; }

        /// <summary>
        /// 印章类型，缺省为11-第一主体印章，当传了companyopencode时为企业印章，当未传companyopencode时为个人签名
        /// 2-日期章
        /// 3-骑缝章
        /// 4-经办人印章，当企业签署时需要经办人签名时可传此参数。读取personopencode对应的个人印章
        /// </summary>
        public int SealType { get; set; }

        /// <summary>
        /// 定位方式。如果sealType是1或者2时，定位方式必填
        /// 1-关键字
        /// 2-坐标
        /// </summary>
        public int LocateMode { get; set; }

        /// <summary>
        /// 关键字 如果填写关键字，签章将会盖在所有匹配到的关键字上。（关键字出现次数大于0小于50）
        /// </summary>
        public int KeyWord { get; set; }

        /// <summary>
        /// 扫描指定pdf位置
        /// - 默认全扫描（页数从1开始）
        /// - 英文逗号分隔，例如"1,2,5" 代表要在第1页第2页和第5页扫描关键字,如果页数重复将会自动去重
        /// - 和关键字( keyWord )配合使用
        /// </summary>
        public int ScanPage { get; set; }

        /// <summary>
        /// 签署坐标
        /// </summary>
        public List<SignCoordinate> SignCoordinate { get; set; }

        /// <summary>
        /// 日期章格式（MM和dd都默认为双位,含有中文则保持单位）
        /// 0:yyyy年MM月dd日 样例：2021年4月11日
        /// 1:yyyy-MM-dd 样例：2021-04-11
        /// 2:yyyy/MM/dd 样例：2021/04/11
        /// 3:MM/dd/yyyy 样例：04/11/2021
        /// 4:中文小写 年月日 样例：二〇二一年四月十一日
        /// - 如果sealType字段传了日期章，则当该字段不传时，默认为0 * 如果sealType字段传了其他类型的印章，该字段不会校验也不会生效
        /// </summary>
        public int DateSealFormat { get; set; }
    }

    /// <summary>
    /// 签署坐标
    /// - 签署坐标如果填写，签章将会盖在指定坐标位置上。
    /// - 签署坐标格式：[{"pdfPage":"1","vertical":"2168","horizontal":"1405"},{"pdfPage":"2","vertical":"3056","horizontal":"1192"}]
    /// - 表示以每一页的左下角为原点，分别在第1页横坐标像素为1405，纵坐标像素为2168和第2页横坐标像素为1192，纵坐标像素为3056的位置盖章
    /// - 骑缝章坐标格式为：{\"verticalPercent\":\"0.617\"}"。该参数仅当locateMode为2时会生效。如果不指定locateMode，骑缝章将由系统盖到默认位置。
    /// verticalPercent范围[0, 1]，代表骑缝章所在高度的百分比。例如文件高度为1000，那么骑缝章根据示例参数将会盖在617处
    /// </summary>
    public class SignCoordinate
    {
        /// <summary>
        /// 签章所在pdf第几页	
        /// </summary>
        [JsonProperty("pdfPage")]
        public string PdfPage { get; set; }

        /// <summary>
        /// 签章垂直坐标	
        /// </summary>
        [JsonProperty("vertical")]
        public string Vertical { get; set; }

        /// <summary>
        /// 签章水平坐标
        /// </summary>
        [JsonProperty("horizontal")]
        public string Horizontal { get; set; }
    }
}